package com.tb._01sync;

import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.common.RemotingHelper;

import java.nio.charset.StandardCharsets;


/**
 * 消息生产者
 */
public class Producer {

    public static void main(String[] args) throws Exception {
        // 1.根据生产者组名创建一个消息的生产者对象
        DefaultMQProducer producer = new DefaultMQProducer("Pro_Group"); // 生产者组名
        // 2.连接mq，设置NameServer的地址
        producer.setNamesrvAddr("localhost:9876");
        // 3.启动Producer实例
        producer.start();
        // 4.创建消息，并指定Topic，Tag和消息体
        Message msg = new Message("Pro_Topic" /* 1.Topic：主题，消息的一级分类 */,
                "Pro_Tag" /* 2.Tag：消息的二级分类 */,
                "我是生产者同步消息".getBytes(StandardCharsets.UTF_8) // 3.数据、消息，必须是byte字节数组
        );
        // 5.发送消息到一个Broker,同步消息是会有相应的，我们可以知道消息是否发送成功
        SendResult sendResult = producer.send(msg);
        // 6.通过sendResult返回消息是否成功送达
        System.out.printf("%s%n", sendResult);
        // 7.如果不再发送消息，关闭Producer实例。
        producer.shutdown();
    }

}